home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / spool.arc / SPOOL.ART
Encoding:
Text File  |  1987-06-15  |  15.7 KB  |  328 lines

  1. LIVING WITH DOS:  PRINT SPOOLERS
  2. by Barry Simon
  3.  
  4. Copyright (c) 1987, Capital PC User Group Inc.
  5. This material may be republished only for internal use
  6. by other not-for-profit user groups.
  7.  
  8. Posted on Compuserve with permission of CPCUG.  May not be
  9. reproduced without including the above copyright notice.
  10.  
  11. Published in the May 1987 issue of the Capital PC Monitor.
  12.  
  13.  
  14. Interfacing your peripheral devices called I/O (for input/output) 
  15. is the slowest aspect of using your computer.  In the March 
  16. Monitor, I discussed disk caches as a way to speed up disk access.  
  17. This month, we'll take a look at print spoolers. Depending on your 
  18. printer, printing a 20 page document can take anywhere from 5 to 
  19. 20 minutes.  If you are printing in graphics mode as you might 
  20. with a technical word processor or fancy printing program like 
  21. LePrint, the times are likely to be a multiple of these.  It is 
  22. silly to tie up a powerful computer merely because your printer is 
  23. incapable of processing output at the rate that your application 
  24. can produce them.  For this reason, I regard print spoolers as 
  25. among the most important productivity tools you can add to your 
  26. basic system.  If your printing is only in text mode you will 
  27. benefit considerably even if you can only afford the memory for a 
  28. 10K spooler. 
  29.  
  30. In this month's article, I will discuss the things you should look for
  31. in a print spooler and describe a sampling of the available programs.
  32.  
  33. Even if your main application programs have their own internal
  34. spooler, a stand alone spooler may be a sensible program to use.
  35. If you print from a word processor which has an internal spooler,
  36. you will be able to continue using the word processor but unable
  37. to exit and use another program.
  38.  
  39. If you have never used a spooler, you will be amazed the first
  40. time that you do a <Shift-PrtSc> screen dump at the DOS level.  The
  41. stately and slow procession of the cursor down the screen is
  42. replaced by a blur.
  43.  
  44. For this review, the following print spoolers were evaluated:
  45.  
  46. o  The print spooler provided by AST with its memory expansion boards;
  47.  
  48. o  The print spooler provided by Intel with its AboveBoards;
  49.  
  50. o  The print spooler provided by Quadram with its memory expansion
  51. boards;
  52.  
  53. o  JSPOOL, from Tall Tree Systems;
  54.  
  55. o  MSPOOL2, a software program written by Rich Winkel;
  56.  
  57. o  Personal Print Control, from IBM; and
  58.  
  59. o  PrintQ, from Software Directions.
  60.  
  61. Before we look at the programs being reviewed, I think that it is
  62. important to first briefly discuss PRINT.COM, the spooling program that
  63. is included with DOS 3.x.
  64.  
  65.  
  66. The DOS Print Command
  67.  
  68. MS DOS comes with a free spooling program called PRINT.COM.  While
  69. I have friends who use it, I have always found the performance
  70. loss associated with it unacceptable.  A good spooler should be
  71. close to transparent.  If you are only typing input in a word
  72. processor or at the DOS level, you shouldn't even know that the
  73. spooler is operating.  With PRINT, I've always found a noticeable
  74. slowdown especially at the DOS level.  PRINT has a number of
  75. parameters to play with but I've found that even by adjusting
  76. these I am unable to find an acceptable setting.  Another
  77. disadvantage of PRINT is that it will only print disk files so it
  78. can only be used with application programs that allow you to print
  79. to disk and then only by the inconvenient method of exiting to DOS
  80. to do the printing.
  81.  
  82. PRINT is slow in part because it is a true multi-tasking program
  83. accessing disk files rather than a file in memory.  While this
  84. means that the RAM demands are small, it requires some
  85. contortions on DOS' part.  DOS is non-reentrant which, roughly
  86. speaking, means that if it is in the middle of one task and you ask
  87. it to do another, it will be confused (your system is likely
  88. to crash) when it finishes the second task and returns to the
  89. first.  That is why a program like SideKick will refuse to come up when
  90. you are scrolling a directory listing; instead, it just beeps at you.
  91. If it did come up and you then tried to save a file to disk, DOS would
  92. be badly fouled up.
  93.  
  94. Whenever you are at the DOS level, DOS is calling its service that
  95. reads the keyboard.  DOS has built in a special undocumented call to
  96. allow PRINT to only do work at a safe time.  It can be argued that the
  97. most important function of PRINT.COM is that it has provided the
  98. resident program developers willing to unassemble it, the necessary
  99. hints to make resident programs that can safely call DOS services.
  100.  
  101.  
  102. What to Look For
  103.  
  104. There are four things you should look for when evaluating a print
  105. spooler:
  106.  
  107. o  How transparent it is;
  108.  
  109. o  What its memory demands are;
  110.  
  111. o  How much control it gives you; and
  112.  
  113. o  Whether it handles graphics properly.
  114.  
  115. Transparency to the user has several aspects.  First, the program
  116. should not be noticeable when you are merely typing.  Of course,
  117. there is no free lunch and you have got to expect some slowdown
  118. for processor intensive tasks like compiling a program or
  119. calculating a spreadsheet.  All the programs under review met this
  120. criterion.  While you have to expect printing to be somewhat
  121. slowed down if it is only being done as a background process,
  122. you'd like that slowing to be as small as possible.  On an AT, I
  123. found all these programs acceptable.  The most noticeable slowing
  124. concerned the disk based spooler PrintQ, so much so that if you
  125. use your printer very heavily, it may be only marginally
  126. acceptable.  Transparency also concerns what I'd call the tinker
  127. factor.  Does the program require you to often adjust parameters
  128. to get it to run properly?  PrintQ trades a remarkable amount of
  129. control for a real tinker factor as I'll explain.  All the other
  130. programs have a totally acceptable level of tinkering required --
  131. basically, very little.
  132.  
  133. Except for PrintQ, all these programs have a rather low overhead
  134. (in the 1 to 12 K range).  The main issue is what kind of memory
  135. the program uses to store the material to be printed.  As already
  136. noted, PrintQ, and optionally JSPOOL, use disk space which has the
  137. advantage of being able to handle multi-page graphics jobs; the
  138. tradeoff is that it uses more processing overhead, even if the disk is
  139. a RAM disk, and even more if accessing a physical disk.  Two of the
  140. programs, Personal Print Control and MSPOOL2, use conventional memory
  141. as do several others as an option.  As we'll see, this effectively
  142. limits them to spooling text and not graphics.  Finally, the AST, Intel
  143. and Quadram print spoolers that only come with boards exploit extended
  144. or EMS memory.  This is the best situation as far as memory usage is
  145. concerned, since spoolers represent a good use for memory expansion
  146. cards.  Table 1 summarizes the type of memory available and the
  147. conventional memory usage of the control program.
  148.  
  149. The amount of control that these programs give you over printing
  150. once spooling has begun is probably the most important
  151. distinguishing factor.  In particular, it may matter if the
  152. control is only at the DOS level or is through a resident program
  153. which can called up with the right hot key.  What kind of control
  154. can you hope for?  First, you might want the power to flush the
  155. buffer, that is, cancel all further printing from the spooler of
  156. material that has already been sent to the spooler.  You might
  157. want to do this if, for example, you realize that you neglected to
  158. turn on near letter quality printing for a job that really
  159. requires it.  Secondly, you might want to be able to pause
  160. printing if, for example, your phone rings.  Thirdly, you might
  161. want to get a reading of how much empty space is left in the
  162. buffer.  Fourth, you might want the power to disable the buffer,
  163. that is, to send material directly to the printer without the
  164. intervention of the spooler.  This may be necessary if some
  165. program is incompatible with the spooler.  The control can be more
  166. involved as we'll discuss.  This issue is so important, we'll
  167. discuss it further below and summarize in Table 1.
  168.  
  169. Finally, there is the issue of printing graphics.  For reasons
  170. that are not entirely clear to me, not all programs are capable of
  171. printing graphics properly.  I tested each of the programs with Print
  172. Shop and LePrint, a program which produces high quality print in a
  173. variety of fonts on dot matrix printers by using graphics mode.  Of the
  174. print spoolers, only MSPOOL2 printed graphics improperly; you will have
  175. to disable it whenever you want to print graphics.  To print from
  176. LePrint with JSPOOL, it was essential that its smart processing, to be
  177. described later, be turned off.
  178.  
  179. You must keep in mind that the memory usage required for graphics
  180. printing is enourmous.  Text based printing involves 2 - 4K per page,
  181. so it is practical to handle 10 page documents; even in conventional
  182. memory and with a memory card, 50 page documents are possible.  Let us
  183. do the computation for a bit mapped page on a laser printer.  It
  184. requires one bit to describe each potential dot.  The number of dots is
  185. 8 inches by 11 inches by 300 dots per inch squared.  Taking into
  186. account the fact that one byte can describe 8 dots, we come up with a
  187. whopping 900K.  For a nine pin printer, the figure is only about 160K
  188. while for a 24 pin printer, it is in the 250 - 350K range.  It is clear
  189. that a spooler cannot handle long graphics printing jobs and that even
  190. medium sized jobs require a disk based spooler like PrintQ and a hard
  191. disk with megabytes of free space.  When I say that a spooler can
  192. handle such jobs, all I mean is that the spooler fills up and you then
  193. wait for the printer.  In fact, because of the overhead associated with
  194. the spooler, you wait longer than if you had no spooler!
  195.  
  196.  
  197. Spooler Control
  198.  
  199. Table 1 gives a listing of the control functions provided by each
  200. program.  I am fond of the Quadram spooler which gives you
  201. resident control in a little box that pops up in the upper left
  202. hand corner of the screen.  It pops up in text or CGA graphics
  203. mode (without mode change) but not in high resolution EGA modes.
  204. You can load spoolers for more than one printer and choose the hot
  205. key to be a pair of the four shifts.  This choice of hot key is
  206. limited but giving you any choice is the exception.  The Intel spooler
  207. only pops up on <Shift-PrtSc> (thereby conflicting with PC Paintbrush's
  208. Frieze progrm), Personal Print Control pops up on the two ordinary
  209. shifts only, and PrintQ only on <Ctrl-Alt-P>.
  210.  
  211. When it comes to  control, Personal Print Control and PrintQ are of
  212. special note.  Personal Print Control pops up a window that lets
  213. you move back the buffer pointer to characters already printed,
  214. thereby letting you recover from a paper jam without reprinting
  215. the whole job( at least with text mode).  A separate window pops up
  216. and lets you send printer codes to your printer, ahead of the
  217. queue in the spooler.  On balance, my favorite interface was that
  218. of Personal Print Control; I only wish that it supported extended
  219. or EMS memory.  The control provided by PrintQ is extraordinary.
  220. It treats each print job as a separate item and you can rearrange the
  221. order of printing of any unprinted job.  You can preassign
  222. priority levels to jobs, and you can save individual jobs to disk for
  223. later printing or to keep a record on disk.  There are tradeoffs
  224. for this power which make it less than ideal for some users; I
  225. found that quite a bit of experimentation was necessary to prevent
  226. it from splitting a single job into multiple jobs with certain
  227. programs and experimentation with other factors was also needed.
  228. In addition, its memory usage is inordinately large compared to
  229. the other programs.  Its spooling to disk is a mixed bag; there
  230. does seem to be some performance degradation relative to memory
  231. based spoolers, but you can use it for multi-page graphics jobs.
  232.  
  233. JSPOOL has an interesting feature but one that many users are
  234. likely to ignore.  While you can only send it commands directly at
  235. the DOS level, you can also send it commands in the print stream.
  236. If the character stream sent to the printer includes @#$, then the
  237. next characters until a ; are a command.  For example with an IBM
  238. graphics compatible printer, the string
  239.  
  240.  this is what @#$ C; compressed mode@#$ -C; looks like
  241.  
  242. would print only the middle in compressed print.  Since this
  243. checking must be turned off for graphics printing, it is likely to
  244. be unwieldy if you do much graphics printing and, in any event, it
  245. requires a hacker outlook to use it.
  246.  
  247.  
  248. Summary
  249.  
  250. Unless you have no printer, you should definitely be using a print
  251. spooler.  Even a 10K spooler can make a big difference for printing in
  252. text mode.  For graphics printing, you'll need a much bigger spooler
  253. which means either one of the disk based commercial spoolers or a
  254. memory board and extended or EMS spooler.  It is a shame that the
  255. only spoolers of the later type that I know of are bundled with
  256. memory boards and not available for separate purchase.  From
  257. questions I have seen posted on Compuserve, there is probably a
  258. real market for such a program.  Ideal in my opinion would be a
  259. version of Personal Print Control that supports EMS and/or extended
  260. memory.
  261.  
  262. The AST print spooler is published by AST Research, Irvine, CA,
  263. (714) 863-1333.  It is bundled with their memory expansion boards
  264. and is not sold separately.
  265.  
  266. The Intel print spooler is published by Intel Corporation, PCEO
  267. division, 5200 NE Elam Young Parkway, Hillsboro, OR  97124, (800)
  268. 538-3373.  It is bundled with their AboveBoards and is not sold
  269. separately.
  270.  
  271. The Quadram print spooler is published by Quadram, One Quad Way,
  272. Norcross, GA  30093, (404) 923-6666.  It is bundled with their
  273. memory expansion boards and is not sold separately.
  274.  
  275. JSPOOL is published by Tall Tree Systems, 1120 San Antonio Road,
  276. Palo Alto, CA  94303,(415) 964-1980.  It is bundled with their
  277. memory expansion boards but is sold separately as a package with
  278. their enhanced copy program JET and their RAM disk for $50 or as a
  279. single program for $20.
  280.  
  281. MSPOOL2 is a free software program by Rich Winkel available on
  282. many BBSs.
  283.  
  284. Personal Print Control is published by IBM as part of the PDSW series,
  285. Personally Developed Software, P.O. Box 3266, Wallingford, CT  06494,
  286. (800) 426-7279.  The suggested retail price is $29.95.
  287.  
  288. PrintQ is published by Software Directions, 1572 Sussex Turnpike,
  289. Randolph, NJ  07869, (800) 346-7638.  The suggested retail price is
  290. $89.
  291.  
  292.  
  293.  
  294.                        AST  Intel  QUADRAM  JSPOOL  MSPOOL2    PPC  PrintQ
  295.                       -----------------------------------------------------
  296. Type of Memory         CEX     CE      CEX   CJ(D)        C      C       D
  297. Memory Requirement      2K    11K       3K      5K       1K    12K     43K
  298. Control                DOS    Res      Res     DOS      DOS    Res     Res
  299. Flush Buffer           Yes    Yes      Yes     Yes      Yes    Yes     Yes
  300. Pause Printing         Yes    Yes      Yes     Yes       No    Yes     Yes
  301. Disengage Buffer        No     No       No      No      Yes    Yes     Yes
  302. Reprint Material         P     No       No      No       No    Yes     Yes
  303. Multiple Copies         No     No       No      No       No    Yes     Yes
  304. Separate Jobs           No     No       No      No       No     No     Yes
  305. Send Control Codes     Yes     FF       No     Yes       No    Yes      FF
  306. Print Stream Codes      No     No       No     Yes       No     No      No
  307.  
  308.  
  309. Table 1.  Summary of Print Spooler Features
  310.  
  311.  
  312. Type of Memory:  C=conventional
  313.                  E=EMS
  314.                  X=Extended
  315.                  D=Disk
  316.                  J=JRAM
  317.   Jspool allows you to spool to their RAMDISK only
  318.  
  319. Amount of memory for control program (conventional in K)
  320.   PrintQ with "color" support takes 55K
  321.  
  322. Control: DOS=Dos Level R=resident
  323.          Res=Resident
  324.  
  325. Remaining options are YES/NO, except for Reprint Material, where P denotes
  326.   reprint current page and Send Control Codes, where FF=form feed only
  327.  
  328.